home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2002 November / SGI Freeware 2002 November - Disc 3.iso / dist / fw_qt3.idb / usr / freeware / Qt / examples / demo / sql / editbook.ui.z / editbook.ui
Encoding:
Qt User Interface  |  2002-04-08  |  17.1 KB  |  432 lines

  1. <!DOCTYPE UI><UI version="3.0" stdsetdef="1">
  2. <class>EditBookForm</class>
  3. <include location="global" impldecl="in declaration">qsqlrecord.h</include>
  4. <include location="global" impldecl="in declaration">qdatabrowser.h</include>
  5. <forward>class QSqlRecord;</forward>
  6. <variable>QMap<QString,int> authorMap;</variable>
  7. <widget class="QDialog">
  8.     <property name="name">
  9.         <cstring>EditBookForm</cstring>
  10.     </property>
  11.     <property name="geometry">
  12.         <rect>
  13.             <x>0</x>
  14.             <y>0</y>
  15.             <width>524</width>
  16.             <height>371</height>
  17.         </rect>
  18.     </property>
  19.     <property name="caption">
  20.         <string>Edit Books</string>
  21.     </property>
  22.     <vbox>
  23.         <property name="name">
  24.             <cstring>unnamed</cstring>
  25.         </property>
  26.         <property name="margin">
  27.             <number>11</number>
  28.         </property>
  29.         <property name="spacing">
  30.             <number>6</number>
  31.         </property>
  32.         <widget class="QDataBrowser">
  33.             <property name="name">
  34.                 <cstring>BookDataBrowser</cstring>
  35.             </property>
  36.             <property name="sort">
  37.                 <stringlist>
  38.                     <string>title ASC</string>
  39.                 </stringlist>
  40.             </property>
  41.             <property name="database" stdset="0">
  42.                 <stringlist>
  43.                     <string>(default)</string>
  44.                     <string>book</string>
  45.                 </stringlist>
  46.             </property>
  47.             <property name="frameworkCode" stdset="0">
  48.                 <bool>true</bool>
  49.             </property>
  50.             <grid>
  51.                 <property name="name">
  52.                     <cstring>unnamed</cstring>
  53.                 </property>
  54.                 <property name="margin">
  55.                     <number>11</number>
  56.                 </property>
  57.                 <property name="spacing">
  58.                     <number>6</number>
  59.                 </property>
  60.                 <widget class="QLayoutWidget" row="0" column="0">
  61.                     <property name="name">
  62.                         <cstring>Layout2</cstring>
  63.                     </property>
  64.                     <grid>
  65.                         <property name="name">
  66.                             <cstring>unnamed</cstring>
  67.                         </property>
  68.                         <property name="margin">
  69.                             <number>0</number>
  70.                         </property>
  71.                         <property name="spacing">
  72.                             <number>6</number>
  73.                         </property>
  74.                         <widget class="QLabel" row="1" column="0">
  75.                             <property name="name">
  76.                                 <cstring>labelPrice</cstring>
  77.                             </property>
  78.                             <property name="text">
  79.                                 <string>Price</string>
  80.                             </property>
  81.                         </widget>
  82.                         <widget class="QLabel" row="0" column="0">
  83.                             <property name="name">
  84.                                 <cstring>labelTitle</cstring>
  85.                             </property>
  86.                             <property name="text">
  87.                                 <string>Title</string>
  88.                             </property>
  89.                         </widget>
  90.                         <widget class="QLineEdit" row="0" column="1">
  91.                             <property name="name">
  92.                                 <cstring>QLineEditTitle</cstring>
  93.                             </property>
  94.                             <property name="database" stdset="0">
  95.                                 <stringlist>
  96.                                     <string>(default)</string>
  97.                                     <string>book</string>
  98.                                     <string>title</string>
  99.                                 </stringlist>
  100.                             </property>
  101.                         </widget>
  102.                         <widget class="QLineEdit" row="1" column="1">
  103.                             <property name="name">
  104.                                 <cstring>QLineEditPrice</cstring>
  105.                             </property>
  106.                             <property name="database" stdset="0">
  107.                                 <stringlist>
  108.                                     <string>(default)</string>
  109.                                     <string>book</string>
  110.                                     <string>price</string>
  111.                                 </stringlist>
  112.                             </property>
  113.                         </widget>
  114.                     </grid>
  115.                 </widget>
  116.                 <widget class="QLayoutWidget" row="3" column="0">
  117.                     <property name="name">
  118.                         <cstring>Layout6</cstring>
  119.                     </property>
  120.                     <hbox>
  121.                         <property name="name">
  122.                             <cstring>unnamed</cstring>
  123.                         </property>
  124.                         <property name="margin">
  125.                             <number>0</number>
  126.                         </property>
  127.                         <property name="spacing">
  128.                             <number>6</number>
  129.                         </property>
  130.                         <widget class="QPushButton">
  131.                             <property name="name">
  132.                                 <cstring>PushButtonInsert</cstring>
  133.                             </property>
  134.                             <property name="text">
  135.                                 <string>&Insert</string>
  136.                             </property>
  137.                         </widget>
  138.                         <widget class="QPushButton">
  139.                             <property name="name">
  140.                                 <cstring>PushButtonUpdate</cstring>
  141.                             </property>
  142.                             <property name="text">
  143.                                 <string>&Update</string>
  144.                             </property>
  145.                             <property name="default">
  146.                                 <bool>true</bool>
  147.                             </property>
  148.                         </widget>
  149.                         <widget class="QPushButton">
  150.                             <property name="name">
  151.                                 <cstring>PushButtonDelete</cstring>
  152.                             </property>
  153.                             <property name="text">
  154.                                 <string>&Delete</string>
  155.                             </property>
  156.                         </widget>
  157.                         <widget class="QPushButton">
  158.                             <property name="name">
  159.                                 <cstring>PushButtonClose</cstring>
  160.                             </property>
  161.                             <property name="text">
  162.                                 <string>&Close</string>
  163.                             </property>
  164.                         </widget>
  165.                     </hbox>
  166.                 </widget>
  167.                 <widget class="QLayoutWidget" row="2" column="0">
  168.                     <property name="name">
  169.                         <cstring>Layout3</cstring>
  170.                     </property>
  171.                     <hbox>
  172.                         <property name="name">
  173.                             <cstring>unnamed</cstring>
  174.                         </property>
  175.                         <property name="margin">
  176.                             <number>0</number>
  177.                         </property>
  178.                         <property name="spacing">
  179.                             <number>6</number>
  180.                         </property>
  181.                         <widget class="QPushButton">
  182.                             <property name="name">
  183.                                 <cstring>PushButtonFirst</cstring>
  184.                             </property>
  185.                             <property name="text">
  186.                                 <string>|< &First</string>
  187.                             </property>
  188.                         </widget>
  189.                         <widget class="QPushButton">
  190.                             <property name="name">
  191.                                 <cstring>PushButtonPrev</cstring>
  192.                             </property>
  193.                             <property name="text">
  194.                                 <string><< &Prev</string>
  195.                             </property>
  196.                         </widget>
  197.                         <widget class="QPushButton">
  198.                             <property name="name">
  199.                                 <cstring>PushButtonNext</cstring>
  200.                             </property>
  201.                             <property name="text">
  202.                                 <string>&Next >></string>
  203.                             </property>
  204.                         </widget>
  205.                         <widget class="QPushButton">
  206.                             <property name="name">
  207.                                 <cstring>PushButtonLast</cstring>
  208.                             </property>
  209.                             <property name="text">
  210.                                 <string>&Last >|</string>
  211.                             </property>
  212.                         </widget>
  213.                     </hbox>
  214.                 </widget>
  215.                 <widget class="QLayoutWidget" row="1" column="0">
  216.                     <property name="name">
  217.                         <cstring>Layout6</cstring>
  218.                     </property>
  219.                     <hbox>
  220.                         <property name="name">
  221.                             <cstring>unnamed</cstring>
  222.                         </property>
  223.                         <property name="margin">
  224.                             <number>0</number>
  225.                         </property>
  226.                         <property name="spacing">
  227.                             <number>6</number>
  228.                         </property>
  229.                         <widget class="QLabel">
  230.                             <property name="name">
  231.                                 <cstring>TextLabel1</cstring>
  232.                             </property>
  233.                             <property name="text">
  234.                                 <string>Author</string>
  235.                             </property>
  236.                         </widget>
  237.                         <widget class="QComboBox">
  238.                             <property name="name">
  239.                                 <cstring>ComboBoxAuthor</cstring>
  240.                             </property>
  241.                             <property name="sizePolicy">
  242.                                 <sizepolicy>
  243.                                     <hsizetype>7</hsizetype>
  244.                                     <vsizetype>0</vsizetype>
  245.                                 </sizepolicy>
  246.                             </property>
  247.                             <property name="database" stdset="0">
  248.                                 <stringlist>
  249.                                     <string>(default)</string>
  250.                                     <string>author_view</string>
  251.                                     <string>name</string>
  252.                                 </stringlist>
  253.                             </property>
  254.                         </widget>
  255.                     </hbox>
  256.                 </widget>
  257.             </grid>
  258.         </widget>
  259.     </vbox>
  260. </widget>
  261. <connections>
  262.     <connection>
  263.         <sender>PushButtonFirst</sender>
  264.         <signal>clicked()</signal>
  265.         <receiver>BookDataBrowser</receiver>
  266.         <slot>first()</slot>
  267.     </connection>
  268.     <connection>
  269.         <sender>BookDataBrowser</sender>
  270.         <signal>firstRecordAvailable( bool )</signal>
  271.         <receiver>PushButtonFirst</receiver>
  272.         <slot>setEnabled(bool)</slot>
  273.     </connection>
  274.     <connection>
  275.         <sender>PushButtonPrev</sender>
  276.         <signal>clicked()</signal>
  277.         <receiver>BookDataBrowser</receiver>
  278.         <slot>prev()</slot>
  279.     </connection>
  280.     <connection>
  281.         <sender>BookDataBrowser</sender>
  282.         <signal>prevRecordAvailable( bool )</signal>
  283.         <receiver>PushButtonPrev</receiver>
  284.         <slot>setEnabled(bool)</slot>
  285.     </connection>
  286.     <connection>
  287.         <sender>PushButtonNext</sender>
  288.         <signal>clicked()</signal>
  289.         <receiver>BookDataBrowser</receiver>
  290.         <slot>next()</slot>
  291.     </connection>
  292.     <connection>
  293.         <sender>BookDataBrowser</sender>
  294.         <signal>nextRecordAvailable( bool )</signal>
  295.         <receiver>PushButtonNext</receiver>
  296.         <slot>setEnabled(bool)</slot>
  297.     </connection>
  298.     <connection>
  299.         <sender>PushButtonLast</sender>
  300.         <signal>clicked()</signal>
  301.         <receiver>BookDataBrowser</receiver>
  302.         <slot>last()</slot>
  303.     </connection>
  304.     <connection>
  305.         <sender>BookDataBrowser</sender>
  306.         <signal>lastRecordAvailable( bool )</signal>
  307.         <receiver>PushButtonLast</receiver>
  308.         <slot>setEnabled(bool)</slot>
  309.     </connection>
  310.     <connection>
  311.         <sender>PushButtonInsert</sender>
  312.         <signal>clicked()</signal>
  313.         <receiver>BookDataBrowser</receiver>
  314.         <slot>insert()</slot>
  315.     </connection>
  316.     <connection>
  317.         <sender>PushButtonUpdate</sender>
  318.         <signal>clicked()</signal>
  319.         <receiver>BookDataBrowser</receiver>
  320.         <slot>update()</slot>
  321.     </connection>
  322.     <connection>
  323.         <sender>PushButtonDelete</sender>
  324.         <signal>clicked()</signal>
  325.         <receiver>BookDataBrowser</receiver>
  326.         <slot>del()</slot>
  327.     </connection>
  328.     <connection>
  329.         <sender>PushButtonClose</sender>
  330.         <signal>clicked()</signal>
  331.         <receiver>EditBookForm</receiver>
  332.         <slot>accept()</slot>
  333.     </connection>
  334.     <connection>
  335.         <sender>BookDataBrowser</sender>
  336.         <signal>primeUpdate(QSqlRecord*)</signal>
  337.         <receiver>EditBookForm</receiver>
  338.         <slot>primeUpdateBook(QSqlRecord*)</slot>
  339.     </connection>
  340.     <connection>
  341.         <sender>BookDataBrowser</sender>
  342.         <signal>beforeUpdate(QSqlRecord*)</signal>
  343.         <receiver>EditBookForm</receiver>
  344.         <slot>beforeUpdateBook(QSqlRecord*)</slot>
  345.     </connection>
  346.     <connection>
  347.         <sender>BookDataBrowser</sender>
  348.         <signal>beforeInsert(QSqlRecord*)</signal>
  349.         <receiver>EditBookForm</receiver>
  350.         <slot>beforeUpdateBook(QSqlRecord*)</slot>
  351.     </connection>
  352.     <connection>
  353.         <sender>BookDataBrowser</sender>
  354.         <signal>primeInsert(QSqlRecord*)</signal>
  355.         <receiver>EditBookForm</receiver>
  356.         <slot>primeInsertBook(QSqlRecord*)</slot>
  357.     </connection>
  358.     <connection>
  359.         <sender>BookDataBrowser</sender>
  360.         <signal>primeInsert(QSqlRecord*)</signal>
  361.         <receiver>EditBookForm</receiver>
  362.         <slot>primeInsertBook(QSqlRecord*)</slot>
  363.     </connection>
  364.     <slot access="protected" language="C++" returnType="void">init()</slot>
  365.     <slot access="protected" language="C++" returnType="void">destroy()</slot>
  366.     <slot access="public" language="C++" returnType="void">beforeUpdateBook( QSqlRecord * buffer )</slot>
  367.     <slot access="public" language="C++" returnType="void">mapAuthor( const QString & name, int & id, bool populate )</slot>
  368.     <slot access="public" language="C++" returnType="void">primeInsertBook( QSqlRecord * buffer )</slot>
  369.     <slot access="public" language="C++" returnType="void">primeUpdateBook( QSqlRecord * buffer )</slot>
  370. </connections>
  371. <functions>
  372.     <function name="init()" >{
  373.     QSqlQuery query( "SELECT surname, id FROM author ORDER BY surname;" );    
  374.     while ( query.next() ) {
  375.     ComboBoxAuthor->insertItem( query.value( 0 ).toString() ); 
  376.     int id = query.value( 1 ).toInt();
  377.     mapAuthor( query.value( 0 ).toString(), id, TRUE );
  378.     }
  379. }</function>
  380.     <function name="destroy()" >{
  381.     
  382. }</function>
  383.     <function name="beforeUpdateBook(QSqlRecord*)" >{
  384.     int id;
  385.     mapAuthor( ComboBoxAuthor->currentText(), id, FALSE );
  386.     buffer->setValue( "authorid", id );
  387. }</function>
  388.     <function name="mapAuthor(const QString&,int&,bool)" >{
  389.     if ( populate ) 
  390.     authorMap[ name ] = id;
  391.     else
  392.     id = authorMap[ name ];
  393. }</function>
  394.     <function name="primeInsertBook(QSqlRecord*)" >{
  395.     QSqlQuery q;  
  396.     q.exec( "UPDATE sequence SET sequence = sequence + 1 WHERE tablename='book';" );  
  397.     q.exec( "SELECT sequence FROM sequence WHERE tablename='book';" );  
  398.     if ( q.next() ) {  
  399.     buffer->setValue( "id", q.value( 0 ) );  
  400.     }  
  401. }</function>
  402.     <function name="primeUpdateBook(QSqlRecord*)" >{
  403.     // Who is this book's author?
  404.     QSqlQuery query( "SELECT surname FROM author WHERE id=" +  
  405.     buffer->value( "authorid" ).toString() + ";" ); 
  406.     QString author = "";    
  407.     if ( query.next() )
  408.     author = query.value( 0 ).toString();
  409.     // Set the ComboBox to the right author
  410.     for ( int i = 0; i < ComboBoxAuthor->count(); i++ ) {
  411.     if ( ComboBoxAuthor->text( i ) == author ) {
  412.         ComboBoxAuthor->setCurrentItem( i ) ;
  413.         break;
  414.     }
  415.     }
  416. }</function>
  417. </functions>
  418. <tabstops>
  419.     <tabstop>QLineEditTitle</tabstop>
  420.     <tabstop>QLineEditPrice</tabstop>
  421.     <tabstop>ComboBoxAuthor</tabstop>
  422.     <tabstop>PushButtonFirst</tabstop>
  423.     <tabstop>PushButtonPrev</tabstop>
  424.     <tabstop>PushButtonNext</tabstop>
  425.     <tabstop>PushButtonLast</tabstop>
  426.     <tabstop>PushButtonInsert</tabstop>
  427.     <tabstop>PushButtonUpdate</tabstop>
  428.     <tabstop>PushButtonDelete</tabstop>
  429.     <tabstop>PushButtonClose</tabstop>
  430. </tabstops>
  431. </UI>
  432.